SlideShare a Scribd company logo
1 of 47
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
AI/MLシステムにおけるビッ
グデータとの付き合い方
JAWS DAYS 2019
February 23, 2019
Shota Suzuki
ML Engineering G
DeNA Co., Ltd.
1
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
自己紹介
 鈴木 翔太
 株式会社ディー・エヌ・エー システム本部AIシステム部MLエンジニアリングG
 MLエンジニア
⁃ AI/MLシステムの本番組み込み
⁃ データの前処理・データパイプライン
⁃ 分析、学習環境の構築
2
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
Agenda
 DeNAでのAI/MLへの取り組みの紹介
⁃ 組織体制
⁃ 交通事故低減に向けたAI技術活用の取り組み
 研究開発を進めるためのビッグデータ処理
⁃ データの保管方法
⁃ 本番システムでのデータ処理
⁃ 分析、学習環境
3
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
DeNA 事業ポートフォリオ
 多種多様な領域でのビジネス・サービス展開
 パートナー企業と共に社会影響の大きなサービス創出
 大規模インターネットサービスプラットフォームの構築
4
ゲーム
エンター
テイメント 新領域スポーツ ヘルスケア
オート
モーティブ
eコマース・
その他
ソーシャル
LIVE
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
AI 技術の蓄積と活用
5
実用系
実験系
スピード
パートナーシップ案件 自社サービス
基礎技術開発
実用価値提供
実証実験
実用価値提供
サービス内実験
最新論文の実装・実験
研究成果の外部発信
最新研究を自社
サービスデータを
活用して実験
先端技術の適用実績を
スピーディーに蓄積
確度の高い技術を
活用した価値を提供
自社サービスでは
獲得できないデー
タを活用した、
実験的取組みによ
る技術力の向上と、
新しい価値の探求
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
AI サービス応用を実現するための組織体制
6
CV / NLP / 音声 / 強化学習等の 研究
上の専門技術を保有 日進月歩の先端研
究動向をウォッチし専門技術を活用し
て事業貢献
高い専門性
サービス・事業の抱える分析課題を解
くことに燃えるスペシャリスト集団
手段を問わず最高の精度を出すことに
泥臭くコミット
幅広い引き出し
ML エンジニア
AI技術をサービス上に実装して安定運用を実現する
データの収集、前処理やAPIの提供
高いエンジニアリング能力
AI 研究開発エンジニア データサイエンティスト
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
7
交通事故低減に向けた
AI 技術活用の取り組み
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
行動変容に基づく交通事故低減
8
 運転行動をモニタリングし潜在的な不安全行動を指摘→行動変容を促す
地図
ドライバー
モニタリング 環境
モニタリング
センサ解析
(GPS、加速度、ジャイロ)
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
ドライバーモニタリング
9
 ランドマーク検出+顔姿勢推定
⁃ 顔のランドマークを検出し、顔の3Dモデルとフィッティングすることで顔の3D姿勢を推定
・・・
左目
鼻
あご
ランドマーク検出結果 顔の3Dモデル
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
車載カメラ画像認識による環境モニタリング
10
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
大規模の実走行データでの実証
11
 実証実験を通して、大規模に実走行データを収集
 アノテーション体制を構築し、AI研究開発に必要十分なラベル付きデータを
いつでも作成・利用できる状態
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
危険運転行動検出アルゴリズムの開発
12
 CVモデルからのデータをはじめ、車速/加速度/地図データから危険運転行
動の特徴を把握し、機械学習等を用いて検出アルゴリズムを開発
危険運転行動の特徴把握
ビジネス要件に合わせた
アルゴリズムの開発
危険運転
行動
安全運転行動
CVモデルなどからデータを取得
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
独自のアルゴリズムによる危険運転行動検出
13
CV / NLP / 音声 / 強化学習等の 研究
上の専門技術を保有 日進月歩の先端研
究動向をウォッチし専門技術を活用し
て事業貢献
高い専門性
サービス・事業の抱える分析課題を解
くことに燃えるスペシャリスト集団
手段を問わず最高の精度を出すことに
泥臭くコミット
幅広い引き出し
ML エンジニア
AI技術をサービス上に実装して安定運用を実現する
データの収集、前処理やAPIの提供
高いエンジニアリング能力
AI 研究開発エンジニア データサイエンティスト
高精度な車間距離算出モデルの開発 危険運転行動検出アルゴリズムの開発
データ収集、本番環境へのデプロイ、運用
CVチーム(AI研究開発エンジニア)の作成した高品質なモデルを活用して
DSチームが危険運転行動検出アルゴリズムを開発し
ドライバー本人にも納得感のある危険運転行動検出を実現
あおり運転検出の例
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
14
AI研究開発を進めるため
のビッグデータ処理
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
基本方針
 MLエンジニア側でモデル開発部分以外はなんでもやる
⁃ 学習環境の整備、本番システムへの組み込みなど
⁃ 研究開発エンジニア、データサイエンティストに対してはクラウド利用の敷居を極力下げる
 マネージドサービスをなるべく使う
⁃ 運用にかける工数を極力減らし本質的な開発に集中
 生のデータをS3、EFSにおき研究開発に利用
⁃ データサイズがかなり大きいのでデータ量と保管場所には注意する
15
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
システム構成
16
車載器通信用ALB
Car API
ALB
Web API
AWS IoT
社内PC
顧客Tablet/PC
車載器
Job Kicker Server
AWS Batch
AI処理
Map Match
位置情報処理
ALB
SQS
Webサービス用
SageMaker 学習用EC2
AWS Glue
S3
SQS
ELB リバプロ Kibana Elasticsearch Service
CVエンジニア・データサイエンティスト分析
AI・危険運転解析処理
アプリログ分析
DynamoDB AuroraMemcache
Argus(内製BI)
車載器データ処理・Webサービス
CloudWatch CloudTrail Amazon SNS
• AIの分析・解析・試験環境において、多種多様なAWSコンポーネントを活用
IGW
DynamoDB
EFS
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
17
ビッグデータの保管
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
大量データの保管方法
 車載器からは一定間隔でデータをアップロード
 車載器のデータはS3に保存し永続化
⁃ 基本はKMS (SSE) で暗号化、MFA Delete On、Versioning On
 頻繁に分析に扱うセンサーデータはEFSにもコピーし扱いやすくしておく
 Digdag / Cronなどで毎週、毎日、毎時 S3 -> EFSのデータ同期
⁃ 走行データは車載器が動いたタイミングで送信されるため、古いデータが飛んでくことがある
⁃ ネットワークの不調によって後から飛んでくることも
• 過去のデータも同期できるように工夫している
18
S3は全データの元データ、必要なデータだけEFSに転送して分析するという運用スタイル
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
 コスト、コスト、コスト!
⁃ データサイズがけっこうな規模になりコストを圧迫
• S3: 1PB 〜
• EFS: 数十TB
• Aurora: 数百GB 〜
⁃ EFSは便利な反面容量単価がS3に比べてかなり高い
• EFS : 0.36 USD/GB
• S3 : 0.025USD/GB (最初の50TB)
⁃ 高いけど使うのはやめられない!
• 大量に処理するときEFSにあるとかなり便利
19
大量データの保管方法のつらみ
S3はコストが比較的安いが、解析する際はEFSの方が分析者として扱いやすい
利用者にはコスト感を理解してもらいつつ、必要データのみEFSに転送するようにしている
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
 KMSのLimit制限
⁃ ThrottlingException の発生
⁃ 大量にS3からデータを取得している時に発生
⁃ アカウントごとに1 秒あたりのリクエスト数 5,500 件 (または 10,000 件) の制限を共有
• OKパターン: 1 秒あたり 3,000 件の GenerateDataKey 、1 秒あたり 1,000 件のDecrypt リクエスト
• NGパターン: 1 秒あたり 5,000 件の GenerateDataKey 、1秒あたり 1,000 件の Encrypt のリクエスト
⁃ 制限緩和が基本できない
⁃ 代替案としてSSE-S3を使うなどをする
20
大量データの保管方法のつらみ
瞬間的に大量データをS3から取得する際には気をつけるべきLimit
制限緩和ができない箇所なので暗号化ソリューションを変更することで対応
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
データの削減検討
 古いS3のデータGlacierに転送しコストダウン
 生データに対して処理をすることがほとんどで中間データを作成して元データを
削除することが難しい
 解析用途では必ずしも全期間のデータは必要ない
⁃ データセットを構築できればそこを保持していれば良い
⁃ データの特性を理解しておかないと必要なデータを落としてしまうことも
• 時間、季節、地域
 研究開発段階では新しい要件も次々に出てきて結局データはあればあるほど良い
となり削減がしづらい
⁃ コストとのトレードオフは常に意識する
21
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
S3以外のデータ管理 - Aurora
22
 Auroraで管理するデータ
⁃ 用途としてはS3で管理できないリレーショナルなデータ
⁃ AI処理結果のステータス
⁃ 動画・センサーデータのS3のpath
⁃ ユーザのマスターデータ
 対策と運用の工夫
⁃ 特別なことはせずにシンプルに利用
⁃ Master(Write) + Read Replica
⁃ データ量が増える今後のサービス展開時に性能向上、機能を期待
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
システム間連携
23
車載器通信用ALB
Car API
ALB
Web API
車載器
Job Kicker Server
AWS Batch
AI処理
Map Match
位置情報処理
ALB
SQS
Webサービス用
S3
SQS
AI・危険運転解析処理
DynamoDB AuroraMemcache
車載器データ処理・Webサービス
IGW
DynamoDB
自動車のデータの収集とAI系処理はそれぞれ部門を分けて開発
部門間に跨る処理はSQSで住み分け、結果はS3, Auroraで共有
AI側処理に失敗したとしても収集したデータは残るので再処理可能
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
SQSでのジョブ連結
 AI側処理は各Task間をSQSで繋げる
⁃ データ整形・前処理 -> SQS <- 位置情報処理 -> SQS <- 危険運転検知
⁃ SQSはコスト安いので気軽に使用できて便利
⁃ 耐障害性も高い (一度SQSの障害で接続できずにエラーまみれに)
⁃ 順序保証の必要がなかったのでSQS FIFOは使わず標準キュー
⁃ 再処理時はSQSにメタデータをエンキューするのみ
⁃ 複数回実行しても大丈夫なよう冪等にジョブは作っておく
24
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
Glueの活用
25
Aurora AWS Glue S3: db snapshot
ユーザ・デバイス情報
Embulk経由でBQへ
 DBに溜まった各種生データをBIで分析する際にGlueを活用
 Glueで必要なテーブルだけ加工してS3へ保存、 最終的にBigQueryヘ転送して
BIで解析
 Glue Job / Trigger をTableごとに設定し、Crawlerで定期実行
S3: Glue Script
Trigger (Cron )
個人情報を抜いた状態のデータを解析したいときなどに活用
BigQueryにデータ投入してBIするという定番の流れに利用できる
Argus(内製BI)
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
Glueのつらみ
26
 Glue JobによるIPアドレスの枯渇が発生
⁃ DPU(Data Processing Unit) の数分の ENIが必要になる
⁃ そのため計算量、同時実行のJobが増えるとその分発生確率が高くなる
⁃ 失敗したジョブを再実行が必要になる(つらみ)
 対策と運用の工夫
⁃ --enable-metrics をONにし、実行中のDPU 数から消費IPを管理
• DPUのモニタリング
⁃ Subnetは分析環境として分割して管理
⁃ 同時実行は避け、実行時刻を調整
⁃ Subnetも大きめに取る
⁃ ENI Limitなどのリソース制限も注意する
https://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitor-debug-capacity.html
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
27
AI/MLの研究開発部分
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
MLシステムのサイクル
28
https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-dg.pdf
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
MLシステムのサイクル
29
https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-dg.pdf
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
センサーデータの収集、保管、加工
 車載器からアップロードされた各種センサーファイルを収集
⁃ 前半のスライドで話した内容
⁃ GPS、加速度、カメラの解析結果、生の映像データなど
⁃ S3とEFSに各ドライビング毎にまとめて配置
 生データをデータサイエンティストが扱いやすいよう前処理
⁃ 分割されたファイルの結合
⁃ 欠損値の補間
⁃ タイムスタンプ揃え
30
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
Computer Vision用データの準備
 データの収集
⁃ 実証実験で収集した動画から専用のアノテーションツールを使い、ドライバーや道路の画像
をアノテーション
 データのクレンジング
⁃ SageMakerのNotebookで可視化分析し異常値を省く
 データセットの構築
⁃ hdf5に変換しデータはEFSに配置
• データが巨大で学習インスタンス立てるたびにコピーするのは面倒
• 圧縮したままEFSにおき学習評価に使える
31
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
MLシステムのサイクル
32
https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-dg.pdf
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
学習、分析環境の構築、運用
 AI研究開発エンジニア、データサイエンティストが安全になるべく自由に使える
学習、分析環境を構築、運用
⁃ データサイエンティスト
• Jupyterは必須
⁃ AI研究開発エンジニア
• 学習用に大量のGPU使いたい
⁃ 共通要件
• AWSの扱いはそこまで慣れていない人が多い
• セキュリティ周りの扱いも気をつける
33
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
分析環境 SageMaker
34
S3
taro-tanaka-notebook-01
hanako-yamada-notebook-01
taro-tanaka-lifecycle-conf
hanako-yamada-lifecycle-conf
EFS
lifecycle configurations
KMSで暗号化
DSチーム
IAM Role
SageMakerのNotebookにEFSをmountし、チーム内でデータ共有
lifecycle configurationsとNotebookを紐づけて管理することで個々にカスタムした環境を構築可能
分析者のアクセス制御
S3->EFSへ片方向データ転送
EFSは分析データの共有に便利
CVチーム
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
学習環境 EC2
35
Step Server 学習用EC2①
(Ondemand Instance)
学習用EC2②
(Spot Instance)
・EC2インスタンス管理ツール(弊社開発)
・監視設定、Spot設定、DNS紐付け、Role管理などを制御する
・開発者が管理しやすい
aws-tools
Lambda Slack
aws-toolsで各EC2インスタンスを生成し、インフラ管理から外れないようにチェック
Spot Instanceの積極的な活用でコスト削減しつつ、停止したときの通知等の工夫をしている
停止
作成者にアラート通知
作成
EFS
分析データ共有
作成
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
SageMakerの利用範囲
36
 SageMakerで開発、学習、推論までやろうと思えば全てできるが、本プロジェク
トではデータの分析、可視化がメイン用途
 少人数でMLプロジェクトに取り組むときには大変有用だと思うが、大規模プロ
ジェクトで色々なスキルを持った人がいる場面では必要性が薄く感じる
⁃ 金銭面
• SageMakerではSpot Instanceが使えないのでGPU処理のコストがかさむ
⁃ 学習コスト
• SageMaker独自の扱いを覚えてもらう必要がある
⁃ 最近はかなり改善されてきている
⁃ 推論API
• モデル作成者以外にソフトウェアエンジニアも同じプロジェクトに関わっているのでわざわざ
SageMakerのものを使う必要もない
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
高速に大量に推論を回す仕組み
37
 AWS Batchを使い大規模に推論、特徴量作成などを実行
⁃ 新モデル作成時には過去データに対して推論を回しデータを作り直す
⁃ 推論は安いCPUのスポットインスタンスを利用しコスト削減
⁃ 自動でスケールアウトするので処理対象をSQSにエンキューするだけ
AWS Batch
元データ
センサ、動画
推論結果、特徴量SQS DSチーム
データの解析
推論、データ
の前処理
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
AWS Batchのメリット
 低コストで大量のインスタンスを立ち上げられる
⁃ Spot Fleet + Auto Scaling + ECSを簡単に構築できる
⁃ AWS Batchがよしなに準備してくれる
 側さえ用意すれば、アプリケーションチームはDockerで自由にリソースを使用で
きる
⁃ Deployも基本はECSと同様の方法なので、ECS/Fargate 利用者はアプローチしやすい
⁃ Job Queue に実行数を指定してリクエストをすれば必要な台数をよしなに起動
• アプリケーションチームはインスタンス数を管理しなくてよい
⁃ 処理が終了すれば自動的にBatchがContainer Instanceを停止してくれる
 全体の処理状況をチェックするDashboardがついている(重要ポイント)
38
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
AWS Batchのつらみ
 API回数制限
⁃ 大量のBatch処理を並行してSubmitしていると突如API制限に引っかかり処理停止
⁃ APIの制限緩和をしたい!
• API Limit制限緩和はありません
⁃ AWS BatchのDashboardさえ見れなくなる
• AWS Batch Dashboard見れないんだけど
⁃ AWS Batch Dashboardは使用しないでください(!?)
• これもAPIを使用するので逆効果らしい
39
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
AWS Batchのつらみ
 Auto Scalingが遅い
⁃ AWS BatchはJob QueueのJob件数をチェックして自動的にContainer Instanceを増やす
• Job Queueに溜まった件数と間隔でスケールアウトさせたいなぁ
⁃ Auto Scalingの設定を変えればいけるだろ!
• 設定はあるが変更等ができない
• この箇所は利用者側でチューニングできない(つらみ)
• ひたすら待つ(つらみ)
 稀にJobが滞留し続け、稼働中のContainer Instanceが自動的に停止されない
⁃ 発生要因はいろいろ(docker-agentの問題等)
⁃ 異常に長い時間動作しているContainer Instanceを監視する仕組みが必要(つらみ)
⁃ Container Instanceも場合によっては利用者側でマネージドしなきゃいけない(つらみ)
40
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
AWS Batchのつらみ
 /aws/batch/job にログが集約される
⁃ Job Queue / Job Container / Job definitionを分割したのにもかかわらず
⁃ Metric Filterの設定が面倒
⁃ Job Definitionで指定できると助かる
 Job Queueの中身の一括削除ができない
⁃ 不要なJobを削除したい
⁃ SQSにはPurgeという素晴らしい機能が!
• だがBatchにはないので
⁃ list-jobs でstatusごとにjob idを取得、一覧を作成 -> terminate-jobで一つ一つ停止
⁃ StatusとはJobの実行状態で、RUNNING、FAILED等を指す
41
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
MLシステムのサイクル
42
https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-dg.pdf
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
デプロイ・モニタリング
 学習したCVモデルはエッジ用に変換しデプロイ
 データサイエンティストの作ったモデルはMLエンジニアが本番用に一部変換し
サーバにデプロイ
 Stage環境に簡易的なデータセットを作り、システムとしての動作、モデルの検出
精度を比較
 危険運転行動検出数の推移をBIツールでモニタリング
43
Inference Batch
元データ
センサ、動画
推論結果、特徴量SQS Analyze Batch
他モデルの結果
モデル間の精度比較
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
今後サービスで使用検討中の機能
 Secrets Manager
⁃ Parameter Storeの拡張、パスワードローテーション機能付き
⁃ DBのユーザ、credentialsの管理用
⁃ API Limitsがあるので叩きすぎ注意
 Fargate
⁃ ECS Spot / Reserved Instance VS Fargate
• 2019年1月にコストダウンしたがやはりちょっと高い
• Task起動が遅い – awsvpc modeとFargate 特有の事象
• コスト・性能がシビアではない箇所にFargateを採用
44
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
まとめ
 AI/MLプロジェクトではモデル開発部分以外にもエンジニアリングタスクはいっぱ
いある
 AWSのマネージドサービスを使えるところは使い運用コストの削減
 データサイズと保管場所には注意し適切なコスト管理を行う
⁃ EFSでのデータ共有は非常に便利だがコスト注意
 大規模に使用すると思わぬところでRate Limitに引っかかることがあるのでドキュ
メントをよく読むのと、一度大きな負荷をかけてみること大事
45
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
46
We’re hiring!
 https://career.dena.jp/job.phtml
 AI研究開発エンジニア、データサイエンティスト(Kaggler)と一緒
にAI/MLプロジェクトに取り組みたいエンジニア
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.
47
ご静聴ありがとうございました

More Related Content

What's hot

[よくわかるクラウドデータベース] リクルートにおけるRedshift導入・活用事例
[よくわかるクラウドデータベース] リクルートにおけるRedshift導入・活用事例[よくわかるクラウドデータベース] リクルートにおけるRedshift導入・活用事例
[よくわかるクラウドデータベース] リクルートにおけるRedshift導入・活用事例
Amazon Web Services Japan
 

What's hot (20)

リクルートのWebサービスを支える共通インフラ「RAFTEL」
リクルートのWebサービスを支える共通インフラ「RAFTEL」リクルートのWebサービスを支える共通インフラ「RAFTEL」
リクルートのWebサービスを支える共通インフラ「RAFTEL」
 
<インフラ管理者向け>チームでのAI開発を支援するAI開発プラットフォームKAMONOHASHI
<インフラ管理者向け>チームでのAI開発を支援するAI開発プラットフォームKAMONOHASHI<インフラ管理者向け>チームでのAI開発を支援するAI開発プラットフォームKAMONOHASHI
<インフラ管理者向け>チームでのAI開発を支援するAI開発プラットフォームKAMONOHASHI
 
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
 
DLモデル開発中の雑務が嫌で支援プラットフォームを作った話
DLモデル開発中の雑務が嫌で支援プラットフォームを作った話DLモデル開発中の雑務が嫌で支援プラットフォームを作った話
DLモデル開発中の雑務が嫌で支援プラットフォームを作った話
 
データサイエンティスト向け性能問題対応の基礎
データサイエンティスト向け性能問題対応の基礎データサイエンティスト向け性能問題対応の基礎
データサイエンティスト向け性能問題対応の基礎
 
ドライブレコーダの動画を使った道路情報の自動差分抽出
ドライブレコーダの動画を使った道路情報の自動差分抽出ドライブレコーダの動画を使った道路情報の自動差分抽出
ドライブレコーダの動画を使った道路情報の自動差分抽出
 
Spark 3.0が目指す、よりインテリジェントなUnified Analytics Platform(db tech showcase 2019 Tok...
Spark 3.0が目指す、よりインテリジェントなUnified Analytics Platform(db tech showcase 2019 Tok...Spark 3.0が目指す、よりインテリジェントなUnified Analytics Platform(db tech showcase 2019 Tok...
Spark 3.0が目指す、よりインテリジェントなUnified Analytics Platform(db tech showcase 2019 Tok...
 
JapanTaxiにおけるSagemaker+αによる機械学習アプリケーションの本番運用
JapanTaxiにおけるSagemaker+αによる機械学習アプリケーションの本番運用JapanTaxiにおけるSagemaker+αによる機械学習アプリケーションの本番運用
JapanTaxiにおけるSagemaker+αによる機械学習アプリケーションの本番運用
 
システム高速化フォーラム向け プッシュ通知基盤のアーキテクチャ
システム高速化フォーラム向け プッシュ通知基盤のアーキテクチャシステム高速化フォーラム向け プッシュ通知基盤のアーキテクチャ
システム高速化フォーラム向け プッシュ通知基盤のアーキテクチャ
 
Developers Summit 2018: ストリームとバッチを融合したBigData Analytics ~事例とデモから見えてくる、これからのデー...
Developers Summit 2018: ストリームとバッチを融合したBigData Analytics ~事例とデモから見えてくる、これからのデー...Developers Summit 2018: ストリームとバッチを融合したBigData Analytics ~事例とデモから見えてくる、これからのデー...
Developers Summit 2018: ストリームとバッチを融合したBigData Analytics ~事例とデモから見えてくる、これからのデー...
 
リクルートを支える横断データ基盤と機械学習の適用事例
リクルートを支える横断データ基盤と機械学習の適用事例リクルートを支える横断データ基盤と機械学習の適用事例
リクルートを支える横断データ基盤と機械学習の適用事例
 
AI for Business - Microsoft AI Business summit 2018
AI for Business - Microsoft AI Business summit 2018AI for Business - Microsoft AI Business summit 2018
AI for Business - Microsoft AI Business summit 2018
 
第一回☆GREE AI Programming ContestでTensorFlow
第一回☆GREE AI Programming ContestでTensorFlow第一回☆GREE AI Programming ContestでTensorFlow
第一回☆GREE AI Programming ContestでTensorFlow
 
[Developers Summit 2015 講演資料] リクルートテクノロジーズ 14,000件/秒の配信を実現した リクルートのモバイルアプリを支え...
[Developers Summit 2015 講演資料] リクルートテクノロジーズ 14,000件/秒の配信を実現した リクルートのモバイルアプリを支え...[Developers Summit 2015 講演資料] リクルートテクノロジーズ 14,000件/秒の配信を実現した リクルートのモバイルアプリを支え...
[Developers Summit 2015 講演資料] リクルートテクノロジーズ 14,000件/秒の配信を実現した リクルートのモバイルアプリを支え...
 
タクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみた
タクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみたタクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみた
タクシードライブレコーダーの動画処理MLパイプラインにkubernetesを使ってみた
 
Hinemos Deep Dive ~運用アナリティクス編~
Hinemos Deep Dive ~運用アナリティクス編~Hinemos Deep Dive ~運用アナリティクス編~
Hinemos Deep Dive ~運用アナリティクス編~
 
[よくわかるクラウドデータベース] リクルートにおけるRedshift導入・活用事例
[よくわかるクラウドデータベース] リクルートにおけるRedshift導入・活用事例[よくわかるクラウドデータベース] リクルートにおけるRedshift導入・活用事例
[よくわかるクラウドデータベース] リクルートにおけるRedshift導入・活用事例
 
リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」
 
Struggle against cross-domain data complexity in Recruit group
Struggle against cross-domain data complexity in Recruit groupStruggle against cross-domain data complexity in Recruit group
Struggle against cross-domain data complexity in Recruit group
 
DeNAでのverticaを活用したアナリスト業務のご紹介
DeNAでのverticaを活用したアナリスト業務のご紹介DeNAでのverticaを活用したアナリスト業務のご紹介
DeNAでのverticaを活用したアナリスト業務のご紹介
 

Similar to AI/MLシステムにおけるビッグデータとの付き合い方

C22 スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品 by Taichi Umeda
C22 スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品 by  Taichi UmedaC22 スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品 by  Taichi Umeda
C22 スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品 by Taichi Umeda
Insight Technology, Inc.
 

Similar to AI/MLシステムにおけるビッグデータとの付き合い方 (20)

複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。 複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
 
Microsoft MVP が語る Azure 移行の勘所
Microsoft MVP が語る Azure 移行の勘所Microsoft MVP が語る Azure 移行の勘所
Microsoft MVP が語る Azure 移行の勘所
 
Beginner must-see! A future that can be opened by learning Hadoop
Beginner must-see! A future that can be opened by learning HadoopBeginner must-see! A future that can be opened by learning Hadoop
Beginner must-see! A future that can be opened by learning Hadoop
 
C22 スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品 by Taichi Umeda
C22 スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品 by  Taichi UmedaC22 スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品 by  Taichi Umeda
C22 スプリットブレインになっても一貫性を保証するインメモリデータグリッド製品 by Taichi Umeda
 
JTF2018 FIWARE x robot x IoT
JTF2018 FIWARE x robot x IoTJTF2018 FIWARE x robot x IoT
JTF2018 FIWARE x robot x IoT
 
サーバーレスアーキテクチャで実現するグローバル空調IoTプラットフォームへの挑戦
サーバーレスアーキテクチャで実現するグローバル空調IoTプラットフォームへの挑戦サーバーレスアーキテクチャで実現するグローバル空調IoTプラットフォームへの挑戦
サーバーレスアーキテクチャで実現するグローバル空調IoTプラットフォームへの挑戦
 
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
 
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
 
FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化
 
2023フライウィール会社紹介_導入事例集.pdf
2023フライウィール会社紹介_導入事例集.pdf2023フライウィール会社紹介_導入事例集.pdf
2023フライウィール会社紹介_導入事例集.pdf
 
ビッグIoTデータに対応したデータベース GridDB
ビッグIoTデータに対応したデータベース GridDBビッグIoTデータに対応したデータベース GridDB
ビッグIoTデータに対応したデータベース GridDB
 
【HinemosWorld2014】A1-3_01_NTT Comのグローバルクラウド戦略とHinemosとの連携について
【HinemosWorld2014】A1-3_01_NTT Comのグローバルクラウド戦略とHinemosとの連携について【HinemosWorld2014】A1-3_01_NTT Comのグローバルクラウド戦略とHinemosとの連携について
【HinemosWorld2014】A1-3_01_NTT Comのグローバルクラウド戦略とHinemosとの連携について
 
Aws summit tokyo 2016
Aws summit tokyo 2016Aws summit tokyo 2016
Aws summit tokyo 2016
 
de:code2018 登壇資料
de:code2018 登壇資料de:code2018 登壇資料
de:code2018 登壇資料
 
Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話Airflowを広告データのワークフローエンジンとして運用してみた話
Airflowを広告データのワークフローエンジンとして運用してみた話
 
【FKEYセミナー 20150205 基調講演】「今こそクラウド活用」 講師:大和 敏彦 氏 (株式会社アイティアイ 代表取締役)
【FKEYセミナー 20150205 基調講演】「今こそクラウド活用」 講師:大和 敏彦 氏 (株式会社アイティアイ 代表取締役)【FKEYセミナー 20150205 基調講演】「今こそクラウド活用」 講師:大和 敏彦 氏 (株式会社アイティアイ 代表取締役)
【FKEYセミナー 20150205 基調講演】「今こそクラウド活用」 講師:大和 敏彦 氏 (株式会社アイティアイ 代表取締役)
 
Rancher/k8sを利用した運用改善の取り組み
Rancher/k8sを利用した運用改善の取り組みRancher/k8sを利用した運用改善の取り組み
Rancher/k8sを利用した運用改善の取り組み
 
リクルートテクノロジーズ における EMR の活用とコスト圧縮方法
リクルートテクノロジーズ における EMR の活用とコスト圧縮方法リクルートテクノロジーズ における EMR の活用とコスト圧縮方法
リクルートテクノロジーズ における EMR の活用とコスト圧縮方法
 
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
 
[de:code 2019 振り返り Night!] Data Platform
[de:code 2019 振り返り Night!] Data Platform[de:code 2019 振り返り Night!] Data Platform
[de:code 2019 振り返り Night!] Data Platform
 

AI/MLシステムにおけるビッグデータとの付き合い方

  • 1. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. AI/MLシステムにおけるビッ グデータとの付き合い方 JAWS DAYS 2019 February 23, 2019 Shota Suzuki ML Engineering G DeNA Co., Ltd. 1
  • 2. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 自己紹介  鈴木 翔太  株式会社ディー・エヌ・エー システム本部AIシステム部MLエンジニアリングG  MLエンジニア ⁃ AI/MLシステムの本番組み込み ⁃ データの前処理・データパイプライン ⁃ 分析、学習環境の構築 2
  • 3. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. Agenda  DeNAでのAI/MLへの取り組みの紹介 ⁃ 組織体制 ⁃ 交通事故低減に向けたAI技術活用の取り組み  研究開発を進めるためのビッグデータ処理 ⁃ データの保管方法 ⁃ 本番システムでのデータ処理 ⁃ 分析、学習環境 3
  • 4. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. DeNA 事業ポートフォリオ  多種多様な領域でのビジネス・サービス展開  パートナー企業と共に社会影響の大きなサービス創出  大規模インターネットサービスプラットフォームの構築 4 ゲーム エンター テイメント 新領域スポーツ ヘルスケア オート モーティブ eコマース・ その他 ソーシャル LIVE
  • 5. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. AI 技術の蓄積と活用 5 実用系 実験系 スピード パートナーシップ案件 自社サービス 基礎技術開発 実用価値提供 実証実験 実用価値提供 サービス内実験 最新論文の実装・実験 研究成果の外部発信 最新研究を自社 サービスデータを 活用して実験 先端技術の適用実績を スピーディーに蓄積 確度の高い技術を 活用した価値を提供 自社サービスでは 獲得できないデー タを活用した、 実験的取組みによ る技術力の向上と、 新しい価値の探求
  • 6. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. AI サービス応用を実現するための組織体制 6 CV / NLP / 音声 / 強化学習等の 研究 上の専門技術を保有 日進月歩の先端研 究動向をウォッチし専門技術を活用し て事業貢献 高い専門性 サービス・事業の抱える分析課題を解 くことに燃えるスペシャリスト集団 手段を問わず最高の精度を出すことに 泥臭くコミット 幅広い引き出し ML エンジニア AI技術をサービス上に実装して安定運用を実現する データの収集、前処理やAPIの提供 高いエンジニアリング能力 AI 研究開発エンジニア データサイエンティスト
  • 7. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 7 交通事故低減に向けた AI 技術活用の取り組み
  • 8. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 行動変容に基づく交通事故低減 8  運転行動をモニタリングし潜在的な不安全行動を指摘→行動変容を促す 地図 ドライバー モニタリング 環境 モニタリング センサ解析 (GPS、加速度、ジャイロ)
  • 9. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. ドライバーモニタリング 9  ランドマーク検出+顔姿勢推定 ⁃ 顔のランドマークを検出し、顔の3Dモデルとフィッティングすることで顔の3D姿勢を推定 ・・・ 左目 鼻 あご ランドマーク検出結果 顔の3Dモデル
  • 10. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 車載カメラ画像認識による環境モニタリング 10
  • 11. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 大規模の実走行データでの実証 11  実証実験を通して、大規模に実走行データを収集  アノテーション体制を構築し、AI研究開発に必要十分なラベル付きデータを いつでも作成・利用できる状態
  • 12. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 危険運転行動検出アルゴリズムの開発 12  CVモデルからのデータをはじめ、車速/加速度/地図データから危険運転行 動の特徴を把握し、機械学習等を用いて検出アルゴリズムを開発 危険運転行動の特徴把握 ビジネス要件に合わせた アルゴリズムの開発 危険運転 行動 安全運転行動 CVモデルなどからデータを取得
  • 13. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 独自のアルゴリズムによる危険運転行動検出 13 CV / NLP / 音声 / 強化学習等の 研究 上の専門技術を保有 日進月歩の先端研 究動向をウォッチし専門技術を活用し て事業貢献 高い専門性 サービス・事業の抱える分析課題を解 くことに燃えるスペシャリスト集団 手段を問わず最高の精度を出すことに 泥臭くコミット 幅広い引き出し ML エンジニア AI技術をサービス上に実装して安定運用を実現する データの収集、前処理やAPIの提供 高いエンジニアリング能力 AI 研究開発エンジニア データサイエンティスト 高精度な車間距離算出モデルの開発 危険運転行動検出アルゴリズムの開発 データ収集、本番環境へのデプロイ、運用 CVチーム(AI研究開発エンジニア)の作成した高品質なモデルを活用して DSチームが危険運転行動検出アルゴリズムを開発し ドライバー本人にも納得感のある危険運転行動検出を実現 あおり運転検出の例
  • 14. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 14 AI研究開発を進めるため のビッグデータ処理
  • 15. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 基本方針  MLエンジニア側でモデル開発部分以外はなんでもやる ⁃ 学習環境の整備、本番システムへの組み込みなど ⁃ 研究開発エンジニア、データサイエンティストに対してはクラウド利用の敷居を極力下げる  マネージドサービスをなるべく使う ⁃ 運用にかける工数を極力減らし本質的な開発に集中  生のデータをS3、EFSにおき研究開発に利用 ⁃ データサイズがかなり大きいのでデータ量と保管場所には注意する 15
  • 16. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. システム構成 16 車載器通信用ALB Car API ALB Web API AWS IoT 社内PC 顧客Tablet/PC 車載器 Job Kicker Server AWS Batch AI処理 Map Match 位置情報処理 ALB SQS Webサービス用 SageMaker 学習用EC2 AWS Glue S3 SQS ELB リバプロ Kibana Elasticsearch Service CVエンジニア・データサイエンティスト分析 AI・危険運転解析処理 アプリログ分析 DynamoDB AuroraMemcache Argus(内製BI) 車載器データ処理・Webサービス CloudWatch CloudTrail Amazon SNS • AIの分析・解析・試験環境において、多種多様なAWSコンポーネントを活用 IGW DynamoDB EFS
  • 17. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 17 ビッグデータの保管
  • 18. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 大量データの保管方法  車載器からは一定間隔でデータをアップロード  車載器のデータはS3に保存し永続化 ⁃ 基本はKMS (SSE) で暗号化、MFA Delete On、Versioning On  頻繁に分析に扱うセンサーデータはEFSにもコピーし扱いやすくしておく  Digdag / Cronなどで毎週、毎日、毎時 S3 -> EFSのデータ同期 ⁃ 走行データは車載器が動いたタイミングで送信されるため、古いデータが飛んでくことがある ⁃ ネットワークの不調によって後から飛んでくることも • 過去のデータも同期できるように工夫している 18 S3は全データの元データ、必要なデータだけEFSに転送して分析するという運用スタイル
  • 19. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.  コスト、コスト、コスト! ⁃ データサイズがけっこうな規模になりコストを圧迫 • S3: 1PB 〜 • EFS: 数十TB • Aurora: 数百GB 〜 ⁃ EFSは便利な反面容量単価がS3に比べてかなり高い • EFS : 0.36 USD/GB • S3 : 0.025USD/GB (最初の50TB) ⁃ 高いけど使うのはやめられない! • 大量に処理するときEFSにあるとかなり便利 19 大量データの保管方法のつらみ S3はコストが比較的安いが、解析する際はEFSの方が分析者として扱いやすい 利用者にはコスト感を理解してもらいつつ、必要データのみEFSに転送するようにしている
  • 20. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved.  KMSのLimit制限 ⁃ ThrottlingException の発生 ⁃ 大量にS3からデータを取得している時に発生 ⁃ アカウントごとに1 秒あたりのリクエスト数 5,500 件 (または 10,000 件) の制限を共有 • OKパターン: 1 秒あたり 3,000 件の GenerateDataKey 、1 秒あたり 1,000 件のDecrypt リクエスト • NGパターン: 1 秒あたり 5,000 件の GenerateDataKey 、1秒あたり 1,000 件の Encrypt のリクエスト ⁃ 制限緩和が基本できない ⁃ 代替案としてSSE-S3を使うなどをする 20 大量データの保管方法のつらみ 瞬間的に大量データをS3から取得する際には気をつけるべきLimit 制限緩和ができない箇所なので暗号化ソリューションを変更することで対応
  • 21. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. データの削減検討  古いS3のデータGlacierに転送しコストダウン  生データに対して処理をすることがほとんどで中間データを作成して元データを 削除することが難しい  解析用途では必ずしも全期間のデータは必要ない ⁃ データセットを構築できればそこを保持していれば良い ⁃ データの特性を理解しておかないと必要なデータを落としてしまうことも • 時間、季節、地域  研究開発段階では新しい要件も次々に出てきて結局データはあればあるほど良い となり削減がしづらい ⁃ コストとのトレードオフは常に意識する 21
  • 22. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. S3以外のデータ管理 - Aurora 22  Auroraで管理するデータ ⁃ 用途としてはS3で管理できないリレーショナルなデータ ⁃ AI処理結果のステータス ⁃ 動画・センサーデータのS3のpath ⁃ ユーザのマスターデータ  対策と運用の工夫 ⁃ 特別なことはせずにシンプルに利用 ⁃ Master(Write) + Read Replica ⁃ データ量が増える今後のサービス展開時に性能向上、機能を期待
  • 23. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. システム間連携 23 車載器通信用ALB Car API ALB Web API 車載器 Job Kicker Server AWS Batch AI処理 Map Match 位置情報処理 ALB SQS Webサービス用 S3 SQS AI・危険運転解析処理 DynamoDB AuroraMemcache 車載器データ処理・Webサービス IGW DynamoDB 自動車のデータの収集とAI系処理はそれぞれ部門を分けて開発 部門間に跨る処理はSQSで住み分け、結果はS3, Auroraで共有 AI側処理に失敗したとしても収集したデータは残るので再処理可能
  • 24. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. SQSでのジョブ連結  AI側処理は各Task間をSQSで繋げる ⁃ データ整形・前処理 -> SQS <- 位置情報処理 -> SQS <- 危険運転検知 ⁃ SQSはコスト安いので気軽に使用できて便利 ⁃ 耐障害性も高い (一度SQSの障害で接続できずにエラーまみれに) ⁃ 順序保証の必要がなかったのでSQS FIFOは使わず標準キュー ⁃ 再処理時はSQSにメタデータをエンキューするのみ ⁃ 複数回実行しても大丈夫なよう冪等にジョブは作っておく 24
  • 25. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. Glueの活用 25 Aurora AWS Glue S3: db snapshot ユーザ・デバイス情報 Embulk経由でBQへ  DBに溜まった各種生データをBIで分析する際にGlueを活用  Glueで必要なテーブルだけ加工してS3へ保存、 最終的にBigQueryヘ転送して BIで解析  Glue Job / Trigger をTableごとに設定し、Crawlerで定期実行 S3: Glue Script Trigger (Cron ) 個人情報を抜いた状態のデータを解析したいときなどに活用 BigQueryにデータ投入してBIするという定番の流れに利用できる Argus(内製BI)
  • 26. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. Glueのつらみ 26  Glue JobによるIPアドレスの枯渇が発生 ⁃ DPU(Data Processing Unit) の数分の ENIが必要になる ⁃ そのため計算量、同時実行のJobが増えるとその分発生確率が高くなる ⁃ 失敗したジョブを再実行が必要になる(つらみ)  対策と運用の工夫 ⁃ --enable-metrics をONにし、実行中のDPU 数から消費IPを管理 • DPUのモニタリング ⁃ Subnetは分析環境として分割して管理 ⁃ 同時実行は避け、実行時刻を調整 ⁃ Subnetも大きめに取る ⁃ ENI Limitなどのリソース制限も注意する https://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitor-debug-capacity.html
  • 27. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 27 AI/MLの研究開発部分
  • 28. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. MLシステムのサイクル 28 https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-dg.pdf
  • 29. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. MLシステムのサイクル 29 https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-dg.pdf
  • 30. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. センサーデータの収集、保管、加工  車載器からアップロードされた各種センサーファイルを収集 ⁃ 前半のスライドで話した内容 ⁃ GPS、加速度、カメラの解析結果、生の映像データなど ⁃ S3とEFSに各ドライビング毎にまとめて配置  生データをデータサイエンティストが扱いやすいよう前処理 ⁃ 分割されたファイルの結合 ⁃ 欠損値の補間 ⁃ タイムスタンプ揃え 30
  • 31. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. Computer Vision用データの準備  データの収集 ⁃ 実証実験で収集した動画から専用のアノテーションツールを使い、ドライバーや道路の画像 をアノテーション  データのクレンジング ⁃ SageMakerのNotebookで可視化分析し異常値を省く  データセットの構築 ⁃ hdf5に変換しデータはEFSに配置 • データが巨大で学習インスタンス立てるたびにコピーするのは面倒 • 圧縮したままEFSにおき学習評価に使える 31
  • 32. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. MLシステムのサイクル 32 https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-dg.pdf
  • 33. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 学習、分析環境の構築、運用  AI研究開発エンジニア、データサイエンティストが安全になるべく自由に使える 学習、分析環境を構築、運用 ⁃ データサイエンティスト • Jupyterは必須 ⁃ AI研究開発エンジニア • 学習用に大量のGPU使いたい ⁃ 共通要件 • AWSの扱いはそこまで慣れていない人が多い • セキュリティ周りの扱いも気をつける 33
  • 34. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 分析環境 SageMaker 34 S3 taro-tanaka-notebook-01 hanako-yamada-notebook-01 taro-tanaka-lifecycle-conf hanako-yamada-lifecycle-conf EFS lifecycle configurations KMSで暗号化 DSチーム IAM Role SageMakerのNotebookにEFSをmountし、チーム内でデータ共有 lifecycle configurationsとNotebookを紐づけて管理することで個々にカスタムした環境を構築可能 分析者のアクセス制御 S3->EFSへ片方向データ転送 EFSは分析データの共有に便利 CVチーム
  • 35. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 学習環境 EC2 35 Step Server 学習用EC2① (Ondemand Instance) 学習用EC2② (Spot Instance) ・EC2インスタンス管理ツール(弊社開発) ・監視設定、Spot設定、DNS紐付け、Role管理などを制御する ・開発者が管理しやすい aws-tools Lambda Slack aws-toolsで各EC2インスタンスを生成し、インフラ管理から外れないようにチェック Spot Instanceの積極的な活用でコスト削減しつつ、停止したときの通知等の工夫をしている 停止 作成者にアラート通知 作成 EFS 分析データ共有 作成
  • 36. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. SageMakerの利用範囲 36  SageMakerで開発、学習、推論までやろうと思えば全てできるが、本プロジェク トではデータの分析、可視化がメイン用途  少人数でMLプロジェクトに取り組むときには大変有用だと思うが、大規模プロ ジェクトで色々なスキルを持った人がいる場面では必要性が薄く感じる ⁃ 金銭面 • SageMakerではSpot Instanceが使えないのでGPU処理のコストがかさむ ⁃ 学習コスト • SageMaker独自の扱いを覚えてもらう必要がある ⁃ 最近はかなり改善されてきている ⁃ 推論API • モデル作成者以外にソフトウェアエンジニアも同じプロジェクトに関わっているのでわざわざ SageMakerのものを使う必要もない
  • 37. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 高速に大量に推論を回す仕組み 37  AWS Batchを使い大規模に推論、特徴量作成などを実行 ⁃ 新モデル作成時には過去データに対して推論を回しデータを作り直す ⁃ 推論は安いCPUのスポットインスタンスを利用しコスト削減 ⁃ 自動でスケールアウトするので処理対象をSQSにエンキューするだけ AWS Batch 元データ センサ、動画 推論結果、特徴量SQS DSチーム データの解析 推論、データ の前処理
  • 38. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. AWS Batchのメリット  低コストで大量のインスタンスを立ち上げられる ⁃ Spot Fleet + Auto Scaling + ECSを簡単に構築できる ⁃ AWS Batchがよしなに準備してくれる  側さえ用意すれば、アプリケーションチームはDockerで自由にリソースを使用で きる ⁃ Deployも基本はECSと同様の方法なので、ECS/Fargate 利用者はアプローチしやすい ⁃ Job Queue に実行数を指定してリクエストをすれば必要な台数をよしなに起動 • アプリケーションチームはインスタンス数を管理しなくてよい ⁃ 処理が終了すれば自動的にBatchがContainer Instanceを停止してくれる  全体の処理状況をチェックするDashboardがついている(重要ポイント) 38
  • 39. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. AWS Batchのつらみ  API回数制限 ⁃ 大量のBatch処理を並行してSubmitしていると突如API制限に引っかかり処理停止 ⁃ APIの制限緩和をしたい! • API Limit制限緩和はありません ⁃ AWS BatchのDashboardさえ見れなくなる • AWS Batch Dashboard見れないんだけど ⁃ AWS Batch Dashboardは使用しないでください(!?) • これもAPIを使用するので逆効果らしい 39
  • 40. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. AWS Batchのつらみ  Auto Scalingが遅い ⁃ AWS BatchはJob QueueのJob件数をチェックして自動的にContainer Instanceを増やす • Job Queueに溜まった件数と間隔でスケールアウトさせたいなぁ ⁃ Auto Scalingの設定を変えればいけるだろ! • 設定はあるが変更等ができない • この箇所は利用者側でチューニングできない(つらみ) • ひたすら待つ(つらみ)  稀にJobが滞留し続け、稼働中のContainer Instanceが自動的に停止されない ⁃ 発生要因はいろいろ(docker-agentの問題等) ⁃ 異常に長い時間動作しているContainer Instanceを監視する仕組みが必要(つらみ) ⁃ Container Instanceも場合によっては利用者側でマネージドしなきゃいけない(つらみ) 40
  • 41. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. AWS Batchのつらみ  /aws/batch/job にログが集約される ⁃ Job Queue / Job Container / Job definitionを分割したのにもかかわらず ⁃ Metric Filterの設定が面倒 ⁃ Job Definitionで指定できると助かる  Job Queueの中身の一括削除ができない ⁃ 不要なJobを削除したい ⁃ SQSにはPurgeという素晴らしい機能が! • だがBatchにはないので ⁃ list-jobs でstatusごとにjob idを取得、一覧を作成 -> terminate-jobで一つ一つ停止 ⁃ StatusとはJobの実行状態で、RUNNING、FAILED等を指す 41
  • 42. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. MLシステムのサイクル 42 https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-dg.pdf
  • 43. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. デプロイ・モニタリング  学習したCVモデルはエッジ用に変換しデプロイ  データサイエンティストの作ったモデルはMLエンジニアが本番用に一部変換し サーバにデプロイ  Stage環境に簡易的なデータセットを作り、システムとしての動作、モデルの検出 精度を比較  危険運転行動検出数の推移をBIツールでモニタリング 43 Inference Batch 元データ センサ、動画 推論結果、特徴量SQS Analyze Batch 他モデルの結果 モデル間の精度比較
  • 44. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 今後サービスで使用検討中の機能  Secrets Manager ⁃ Parameter Storeの拡張、パスワードローテーション機能付き ⁃ DBのユーザ、credentialsの管理用 ⁃ API Limitsがあるので叩きすぎ注意  Fargate ⁃ ECS Spot / Reserved Instance VS Fargate • 2019年1月にコストダウンしたがやはりちょっと高い • Task起動が遅い – awsvpc modeとFargate 特有の事象 • コスト・性能がシビアではない箇所にFargateを採用 44
  • 45. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. まとめ  AI/MLプロジェクトではモデル開発部分以外にもエンジニアリングタスクはいっぱ いある  AWSのマネージドサービスを使えるところは使い運用コストの削減  データサイズと保管場所には注意し適切なコスト管理を行う ⁃ EFSでのデータ共有は非常に便利だがコスト注意  大規模に使用すると思わぬところでRate Limitに引っかかることがあるのでドキュ メントをよく読むのと、一度大きな負荷をかけてみること大事 45
  • 46. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 46 We’re hiring!  https://career.dena.jp/job.phtml  AI研究開発エンジニア、データサイエンティスト(Kaggler)と一緒 にAI/MLプロジェクトに取り組みたいエンジニア
  • 47. Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. 47 ご静聴ありがとうございました